package com.yuandian.base.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.bpm.common.core.util.R;

import java.util.List;
import java.util.Map;

/**
 * 说明：通用接口service
 * @Author zfsn
 * @Date 2023/2/16 15:59
 */
public interface ICommonService {

	/**
	 * 通用一般列表查询
	 * @param code 配置编码
	 * @param req 请求参数
	 * @return 通用返回对象
	 */
	R<List<Map<String, Object>>> list(String code, Map<String, Object> req);

	/**
	 * 通用分页列表查询
	 * @param page 分页参数
	 * @param code 配置编码
	 * @param req 请求参数
	 * @param <T> 分页对象类型
	 * @return 通用返回对象
	 */
	<T> R<Page<Map<String, Object>>> page(Page<T> page, String code, Map<String, Object> req);

	/**
	 * 通用趋势图查询
	 * @param code 配置编码
	 * @param req 请求参数
	 * @return 通用返回对象
	 */
	R<Map<String, Object>> trendChart(String code, Map<String, Object> req);

	/**
	 * 通用导出
	 * @param code 配置编码
	 * @param req 请求参数
	 * @param <T> vo类型
	 * @return 通用返回对象
	 */
	<T> R<T> export(String code, Map<String, Object> req);
}
